____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―
Datenstromorientierte Programmierung
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
top
Die Datenstromorientierte Programmierung geht von einem kontinuierlichen Datenstrom, meist Signaldaten, der in Echtzeit verΓ€ndert und ausgegeben wird, aus. Bekannte Beispiele sind Simulink, Pure Data, Lustre (Programmiersprache) oder LabVIEW.
Contents
β’ Geschichte
β’ Objekte
β’ Quelle
β’ Knoten
β’ Senken
β’ Datenstrom
β’ Einzelnachweise
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Geschichte
Die Datenstromorientierte Programmierung wurde Anfang der 1970er Jahre von J. Paul Morrison erfunden β eine frΓΌhe Implementierung dieser Technologie ist seit damals in den grΓΆΓten kanadischen Banken in stΓ€ndigem Gebrauch.cite-ref-1[1]
Datenstromorientierte Programmierung war zu Beginn stark von damaligen IBM-Simulationssprachen beeinflusst, besonders von GPSS. Ihre Wurzeln aber reichen bis zu Melvin Conways herausragender Arbeit ΓΌber Coroutinen zurΓΌck.cite-ref-2[2]
Objekte
Die einzelnen Elemente, die den Datenstrom erzeugen und verΓ€ndern, werden als Objekte bezeichnet. Ihr Verhalten kann durch Parameter beeinflusst werden. Man kann sie grob in folgende Kategorien einteilen:
Quelle
Als Quelle wird ein Objekt bezeichnet, das einen Datenstrom erzeugt. Es hat mindestens einen Ausgang, der einem anderen Objekt als Eingang dienen kann.
β’ Externe Quellen: Externe Quellen beziehen ihre Daten von auΓerhalb des Programms, meist aus Daten oder von EingabegerΓ€ten (z. B.: Mikrofon oder Videokamera).
β’ Interne Quellen: Interne Quellen erzeugen einen bestimmten, vordefinierten Datenstrom. Dies kann ein konstanter Wert sein, aber auch Sinus-Kurven oder Γ€hnliches.
Knoten
Knoten haben mindestens einen Eingang, an denen ein Datenstrom angelegt werden kann. Sie fΓΌhren auf dem Datenstrom festgelegte Operationen durch (z. B. Addition der Eingangssignale). Das Ergebnis ist an dem oder den AusgΓ€ngen verfΓΌgbar und kann weiterverarbeitet werden.
Senken
Senken sind fΓΌr die Ausgabe des Datenstroms verantwortlich, sie haben daher zwar EingΓ€nge, jedoch keine AusgΓ€nge. Sie kΓΆnnen entweder fΓΌr eine Datei stehen, in die geschrieben wird oder fΓΌr ein AusgabegerΓ€t, also z. B. ein Lautsprecher oder Bildschirm.
Datenstrom
Beim Datenstrom handelt es sich meist um Audio- oder Videodaten, seltener auch um reine Zahlenwerte. Er flieΓt immer vom Ausgang eines Objektes zu allen damit verbundenen EingΓ€ngen von Objekten, bis er in eine Senke gelangt.
Anwendungsgebiete
Die reine datenstromorientierte Programmierung wird zurzeit einerseits von MedienkΓΌnstlern verwendet, um multimediale, interaktive und verteilte Werke zu gestalten (siehe auch: Digitale Kunst). Andererseits ist unter KΓΌnstlern der elektronischen Musikrichtungen die Musiksoftware Reaktor beliebt, die rein grafisch eine Pure-Data-Γ€hnliche, jedoch mehr auf die Erstellung von virtuellen MusikgerΓ€ten zugeschnittene, FunktionalitΓ€t bietet.
Seit langem etabliert ist diese Art der Programmierung in der Regelungstechnik und zunehmend auch in der Entwicklung eingebetteter Systeme.
Einzelnachweise